DataSource for Entity Framework for WPF/Silverlight
AttachView<TResult>(Func<View<T>,View<TResult>>) メソッド
使用例 

C1.LiveLinq.LiveViews 名前空間 > View<T> クラス > AttachView メソッド : AttachView<TResult>(Func<View<T>,View<TResult>>) メソッド
サブクエリービュー内の要素の型。
サブビューがアタッチされている先のビューから、そのサブビューを取得する関数。
サブクエリーをビューのインクリメンタルメンテナンスメカニズムに含めます。
シンタックス
'宣言
 
Public Overloads Function AttachView(Of TResult)( _
   ByVal selector As System.Func(Of View(Of T),View(Of TResult)) _
) As View(Of TResult)
public View<TResult> AttachView<TResult>( 
   System.Func<View<T>,View<TResult>> selector
)

パラメータ

selector
サブビューがアタッチされている先のビューから、そのサブビューを取得する関数。

型パラメータ

TResult
サブクエリービュー内の要素の型。

戻り値の型

アタッチされているサブビュー。
解説

サブクエリーは、外側のクエリーの一部である関数内のクエリーです。 外側のクエリーがライブビューで、そのベースデータが変更されたために関数を再計算する必要がある場合、 デフォルトでは、関数の評価だけが行われます。つまり、このような再計算が行われるたびにサブクエリーの新しいビューオブジェクトが作成されます。 サブビューの作成とデータの挿入が繰り返されるのを避けることによってパフォーマンスを向上させるには、AttachView メソッドを使用して 外側のビューにサブビューを認識させます。これにより、外側のビューは、自身が作成したサブビューオブジェクトをキャッシュおよび再利用します。

1つのビューに複数のサブビューがアタッチされている場合、 subviewId パラメータを持つ AttachView オーバーロードを使用して、すべてのサブビューに一意のサブビュー ID を提供する必要があります。

var productView = from p in products join s in sales on p.ProductID equals s.ProductID into productSales select new { p.Name, SalesByCountry = productSales.AttachView(v => from s in v group s by s.Country into countrySales select new { Country = countrySales.Key, SaleCount = countrySales.LiveSum(s => s.Quantity).Value }) };
使用例
var productView =
from p in products
join s in sales on p.ProductID equals s.ProductID into productSales
select new
{
p.Name,
SalesByCountry = productSales.AttachView(v =>
from s in v
group s by s.Country into countrySales
select new
{
Country = countrySales.Key,
SaleCount = countrySales.LiveSum(s => s.Quantity).Value
})
};
参照

View<T> クラス
View<T> メンバ
オーバーロード一覧
AttachAggregationView<TResult>(Func<View<T>,AggregationView<T,TResult>>) メソッド